perm filename CRNCH.FAI[CMS,LCS] blob
sn#183915 filedate 1975-10-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00010 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE OO
C00004 00003 INTRU: MOVE EN,JOBCNI
C00005 00004 GNAME: SETZM FILEXT+1
C00006 00005 GETNAM: MOVEI A,
C00008 00006 EVAL: HRRZI MA,1
C00012 00007 BACK: HRRZI 6,-2(CX)
C00015 00008 GETO: SKIPN OU ??
C00017 00009 SAVIT: HRRZM 6,FIXFLG
C00023 00010 TABL: REPEAT 7,{JFCL↔}
C00027 ENDMK
C⊗;
TITLE OO
EXTERNAL JOBAPR,JOBTPC,JOBCNI,JOBFF,JOBREL,JOBDDT,$I
A←1 ↔ B←2 ↔ FL←4 ↔ EN←7 ↔ TS←10 ↔ OU←11
CX←13 ↔ MA←14 ↔ N←15 ↔ P←17 ↔ NBUFS←←4
MEM←20000 ↔ C←16
ERRO: OUTSTR QMARK
JRST RST
RST: RESET
INT: HRRZI EN,INTRU
HRRZM EN,JOBAPR
MOVE EN,IPC
INTENB EN,
LOOP: MOVE P,PDPO
OUTSTR CRLF
PUSHJ P,INTY
PUSHJ P,EVAL
; PUSHJ P,GETO
JRST LOOP
IBUF: BLOCK 4
FILNAM: 0
FILEXT: 0
0
FILPPN: 0
INTY: HRRZI N,MEM+1
HRRZI TS,(N)
OUTSTR ASTR
CLRBFI
OUTSTR [ASCIZ/ FILE NAME = /]
PUSHJ P,GNAME
OPEN 11,[14↔'DSK '↔IBUF]
JRST 4,.
INBUF 11,NBUFS
LOOKUP 11,FILNAM
JRST INTY
HRRZI EN,MEM+200
CORE EN,
HALT
PUSHJ P,INP
INLIN: ILDB EN,IBUF+1
HRRZM EN,(TS)
SETZM 1(TS)
ADDI TS,2
SOJG INLIN
JRST INLIN-1
INP: IN 11,
JRST MNUM
STATO 11,20000
JRST 4,.
POP P,
POPJ P,
MNUM: HRRZI 700
HRLM IBUF+1
HRRZ IBUF+2
IMULI 5
POPJ P,
EXCT: HLRZ 6,6
XCT TABL(6)
JRST CKEX1+2
INTRU: MOVE EN,JOBCNI
MOVE OU,JOBTPC
TRNN EN,20000
DISMIS
CORUP: SOJ OU,
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,JOBREL
AOJ 1,
CORE 1,
JRST TABL+77
INTJEN IPC
IPC: 20000 ↔ 0 ↔ PPN: 'CMSLCS'
GNAME: SETZM FILEXT+1
SETZM FILPPN
MOVE A,['DMD ']
MOVEM A,FILEXT
PUSHJ P,GETNAM
SKIPN A
MOVE A,['PFILE ']
GEXT: MOVEM A,FILNAM
CAIE C,"."
JRST NOEXTN
PUSHJ P,GETNAM
MOVEM A,FILEXT
NOEXTN: CAIE C,"["
JRST FFDX
PUSHJ P,GETP
HRLZM A,FILPPN
PUSHJ P,GETP
HRRM A,FILPPN
FFDX: INCHRW C
CAIE C,12
JRST FFDX
POPJ P,
GETNAM: MOVEI A,
MOVE B,[440600,,A]
GETNML: PUSHJ P,RCH
POPJ P,
SUBI C,40
TLNE B,770000
IDPB C,B
JRST GETNML
GETP: MOVEI A,
GETPL: PUSHJ P,RCH
POPJ P,
TRNE A,770000
JRST GETPL
LSH A,6
ADDI A,-40(C)
JRST GETPL
RCH: INCHWL C
CAIN C,42
JRST RCHQ
CAIE C,11
CAIN C," "
JRST RCH
CAIE C,"."
CAIN C,","
POPJ P,
CAIE C,"["
CAIN C,"]"
POPJ P,
RCHQR: CAIGE C,40
POPJ P,
CAIL C,"a"
CAILE C,"z"
CAIA
SUBI C,40
POPJ1: AOS (P)
POPJ P,
RCHQ: INCHWL C
JRST RCHQR
EVAL: HRRZI MA,1
HRRZI CX,(N)
JRST BGIN
MVM: HRLI OU,400000(MA)
HRRZI 6,2
JRST LMVM
LAEQ: HRRZI 6,2
CAIE OU,(MA)
ADDI 6,2
SUBI 5,2
HLL OU,(5)
LMVM: MOVEM OU,(5)
SETZM 1(5)
ADDI 5,2
SUBI TS,(6)
ADDI 6,(5)
HRLZI 6,(6)
HRRI 6,(5)
BLT 6,(TS)
JRST LKMO
FDEQ: MOVE 4,MEM(MA)
HRRZI 5,(N)
LKMO: CAMN 4,(5)
JRST EQU
ADIN: ADDI 5,2
CAIGE 5,(TS)
JRST LKMO
ADDI MA,2
BGIN: CAIGE MA,-MEM(N)
JRST FDEQ
HRRZI MA,-MEM(CX)
ADDI N,2
CAIGE N,(TS)
JRST FDEQ
JRST BACK
EQU: HRRZI OU,(MA)
CAILE TS,2(5)
CAIG N,MEM+2(MA)
JRST CKLA
MOVE 6,MEM+2(MA)
CAMN 6,2(5)
HRRI OU,2(MA)
CKLA: CAIL 5,2(N)
SKIPL 6,-2(5)
JRST .+3
CAIN MA,2(6)
JRST LAEQ
CAIE OU,(MA)
JRST MVM
SKIPL 1(5)
SKIPN 6,MEM+1(OU)
JRST ADIN
CKEX1: TRNN 6,777777
JRST EXCT
HRLI OU,400001(OU)
AOJ OU,
MOVEM OU,1(5)
DOUT: CAIGE CX,-2(TS)
JRST ADIN
BACK: HRRZI 6,-2(CX)
ADDI 6,2
SKIPGE 1(6)
JRST NEGA+1
SKIPGE OU,(6)
AOBJN OU,NEGA
HRRZI OU,-MEM(6)
HRLI OU,400000(OU)
NEGA: MOVEM OU,1(6)
CAIGE 6,-2(TS)
JRST BACK+1
CAIE TS,2(CX)
JRST NOT1
SUBI TS,2
MOVE EN,(TS)
SUB OU,ONEB
CAME OU,EN
CAIN CX,MEM(OU)
AOBJN OU,NEW1
SKIPL FL,FIXFLG
AOBJN OU,FIXIT
HRRZI EN,MEM+1(OU)
ADD OU,ONEB
CKSAV: SKIPN SAVFLG
POPJ P,
HRRM TS,INTY
MOVEM EN,TMP
POPJ P,
NEW1: SKIPGE FL,FIXFLG
JRST CKSAV
HRRZI OU,-MEM+1(CX)
HRLI OU,400000(OU)
JRST ADTS
NOT1: HRRZI EN,-MEM-2(TS)
HRLI EN,400000-MEM(CX)
MOVE OU,EN
ADD OU,ONEB
SKIPGE FL,FIXFLG
JRST CKSAV
MOVEM EN,(TS)
MOVEM OU,1(TS)
HRRZI OU,-MEM+1(TS)
HRLI OU,400000(OU)
ADTS: ADDI TS,2
FIXIT: SKIPL EN,TMP
JRST CKFLS
MOVEM EN,(TS)
HRRZI EN,1(TS)
ADDI TS,2
CKFLS: PUSHJ P,(FL)
SETOM FIXFLG
JRST CKSAV
GETO: SKIPN OU ;??
POPJ P,
TLZN OU,400000
TRNN OU,400000
JRST GOUT
MOVE EN,OU
HRRZI 4,777775
JRST MKOUT
PUDO: HRLI OU,(4)
PUSH TS,OU
MOVE OU,EN
GOUT: HLRZ 4,OU
MOR: MOVE EN,MEM(4)
TLZE EN,400000
JRST PUDO
TRNE EN,400000
JRST MKOUT
TLNE EN,777777
JRST DOIT
OUTCHR EN
ADO: ADDI 4,2
CAIG 4,(OU)
JRST MOR
TLNN TS,777777
JRST TYOUT
POP TS,OU
HLRZ 4,OU
JRST ADO
DOIT: HLRZS EN
XCT TABL(EN)
JRST ADO
MKOUT: HLRZ 6,EN
HRLI EN,(EN)
TRZ EN,400000
MOVEM EN,MEM(6)
JRST ADO
TYOUT: POPJ P,
SAVIT: HRRZM 6,FIXFLG
OUTSTR CRLF
FIXTS: SUBI TS,2
MOVE OU,-1(TS)
SUB P,ONEB
JRST DOUT
CRFIX: CAIGE 5,-2(TS)
POPJ P,
JRST FIXTS
INDER: HRRZI 6,.+2
JRST SAVIT
MOVEM OU,(EN)
POPJ P,
LITA: HRRZI 6,.+2
JRST SAVIT
SUB OU,ONEB
MOVEM OU,(EN)
POPJ P,
RPLACE: HRRZI 6,.+2
JRST SAVIT
HRR OU,MEM(OU)
TLZ OU,400000
TRO OU,400000
MOVEM OU,(EN)
POPJ P,
ADER: HRRZI 6,.+2
JRST SAVIT
MOVE 4,MEM-1(OU)
MOVEM 4,2(TS)
CAIE TS,1(OU)
JRST OLD1
SUBI TS,2
MOVE OU,(OU)
OLD1: MOVEM OU,3(TS)
MOVE 4,-1(EN)
MOVEM 4,(TS)
MOVE 5,(EN)
TRNE 5,-1
TRNE 5,400000
JRST POIT
POID: MOVEM 5,1(TS)
HRRZI OU,-MEM+2(TS)
HRLI OU,400000-MEM(TS)
MOVEM OU,4(TS)
AOBJP OU,
MOVEM OU,5(TS)
HRRZI OU,-MEM+5(TS)
HRLI OU,400000(OU)
MOVEM OU,(EN)
ADDI TS,6
POPJ P,
POIT: HRRZI 5,(EN)
HRLI 5,400000(EN)
JRST POID
NDIRT: HRRZI 6,.+2
JRST SAVIT
MOVE OU,MEM(OU)
MOVEM OU,(EN)
POPJ P,
TABL: REPEAT 7,{JFCL↔}
JRST RST
JFCL
JFCL
JFCL
JFCL
JFCL
PUSHJ P,CRFIX
REPEAT 24,{JFCL↔}
JFCL
REPEAT 10,{JFCL↔}
JFCL
JFCL
JFCL
JFCL
REPEAT 13,{JFCL↔}
PUSHJ P,INDER
REPEAT 4,{JFCL↔}
JFCL
PUSHJ P,NDIRT
PUSHJ P,ADER
JFCL
JFCL
REPEAT 2,{JFCL↔}
JFCL
REPEAT 4,{JFCL↔}
JFCL
PUSHJ P,LITA
JFCL
SETZM SAVFLG
JFCL
JFCL
JFCL
PUSHJ P,RPLACE
SETOM SAVFLG
REPEAT 53,{JFCL↔}
SVAC: BLOCK 20
POPS: POPJ P, ↔ PDPO: IOWD 100,PDL
PDL: BLOCK 100
QMARK: 45767706424
CRLF: 64240,,0 ↔ ASTR: ASCIZ/*/
FIXFLG: -1 ↔ CRLFD: 64245,,600000
TMP: 0 ↔ SAVFLG: -1
LITFLG: -1
ONEB: 1,,1 ↔ TWOB: 2,,2
BLOCK 400
END RST